草庐IT

Perl 数据类型

全部标签

sql - 如何查询存储在数组中的 Rails ActiveRecord 数据

我有一个名为MentorData的Rails模型,它有一个名为os_usage的属性。这些ose存储在一个数组中,就像这样['apple','linux']。回顾一下:$MentorData.first.os_usage=>['apple','linux']我希望能够查询所有MentorData的数据,包括apple的os_usage,但是当我搜索MentorData.where(os_usage:'apple')我只得到只会用apple不会用apple和linux的导师。我需要以某种方式进行搜索以检查苹果是否包含在数组中。我也试过以下方法。MentorData.where('os_u

ruby-on-rails - 如何从 YAML 文件加载一些 ActiveRecord 模型并将它们保存到数据库?

我正在尝试将一些查找表数据保存到YAML文件中,以便稍后当我需要在另一台机器上设置我的应用程序时,我可以将数据作为种子数据加载。数据是选择选项之类的东西,而且几乎已经设置好,所以不用担心序列化和反序列化之间的实时数据变化。我已经输出了这样的数据......file=File.open("#{RAILS_ROOT}/lib/tasks/questions/questions.yml",'w')questions=Question.find(:all,:order=>'order_position')file我可以像这样加载文件...questions=YAML.load_file('li

ruby-on-rails - 如何编写 Devise 扩展(使用自定义数据存储)

我想为Devise编写一个扩展,允许您使用parse_resource作为数据存储(与ActiveRecord相反)。parse_resource是Parse.com的RESTapi的Ruby包装器。它的界面与ActiveRecord的界面几乎相同,并且是ActiveModel的提示。因此,Devise的扩展似乎可能不需要太多非样板文件。但是,我找不到任何教程。我必须依赖的是其他扩展的来源。来自MongoMapperextension,我认为有两个主要部分:Thegenerators(不是很需要)在这里你覆盖了DeviseGenerator#(generate_model|inject

ruby-on-rails - 如何构建我的 RSpec 测试文件夹、文件和数据库?

我已经使用RoR进行开发一年多了,但我才刚刚开始使用RSpec进行测试。对于标准模型/Controller测试,我通常没有任何问题,但问题是我想测试一些复杂的功能流程,并且不知道如何构建我的测试文件夹/文件/数据库。这是我的应用程序的基本结构:classCustomerhas_one:wallethas_many:ordershas_many:invoices,through::ordershas_many:invoice_summariesendclassWalletbelongs_to:customerendclassOrderhas_one:invoicebelongs_to:c

ruby-on-rails - 防止 Rails 测试删除种子数据

我正在使用seeds.rb填充一些状态模型引用数据:State.create:name=>'Alabama',:abbreviation=>'AL'State.create:name=>'Alaska',:abbreviation=>'AK'#...虽然我没有使用状态固定装置(因为它是种子数据,我认为纯粹为了测试而复制它不会是DRY),Rails测试框架似乎删除了所有状态种子数据测试。(我正在删除、重新创建、迁移和重新播种测试数据库,并在单元测试运行之前确认数据在那里。)结果是此断言在seeds.rb中成功但在单行测试中失败:assert_equal51,State.all.size1

sql - Rails 中独立于数据库的 SQL 字符串连接

我想在Rails查询中进行数据库端字符串连接,并以独立于数据库的方式进行。SQL-92指定双杠(||)作为连接运算符。不幸的是,MSSQLServer似乎不支持它;它使用+代替。我猜Rails的SQL语法抽象已经解决了特定于数据库的运算符问题。如果它确实存在,我该如何使用它? 最佳答案 我遇到了同样的问题,但从未想出任何内置于Rails中的东西。所以我写了这个小方法。#Symbolsshouldbeusedforfieldnames,everythingelsewillbequotedasastringdefdb_concat(*a

ruby - 为什么 ruby​​ 需要这么多不同类型的闭合?

据我所知,Ruby中基本上有三种不同的闭包;方法、过程和lambdas。我知道它们之间存在差异,但是我们不能只是拥有一种可以容纳所有可能用例的类型吗?通过调用self.method(method_name)已经可以像procs和lambdas一样传递方法。,我所知道的procs和lambdas之间的唯一显着区别是当您尝试使用return时,lambdas检查arity和procs会做一些疯狂的事情。.那么我们不能将它们全部合并为一个并完成它吗? 最佳答案 AsfarasIcantell,thereareessentiallythre

ruby - 使用递归正则表达式(如 perl)在 Ruby 中匹配平衡括号

我一直在寻找一种方法来匹配正则表达式中的平衡括号,并在Perl中找到了一种使用递归正则表达式的方法:my$re;$re=qr{\((?:(?>[^()]+)#Non-parenswithoutbacktracking|(??{$re})#Groupwithmatchingparens)*\)}x;来自perlregularexpressionsite.有没有办法用Ruby或类似的语言做到这一点?更新:对于那些感兴趣的人,这里有一些有趣的链接:Onigurumamanual-来自Sawa的回答。PragmaticProgrammers'Ruby1.9RegularExpressionsS

ruby-on-rails - 模拟 rspec 中的错误/异常(不仅仅是它的类型)

我有一段代码是这样的:defsome_methodbegindo_some_stuffrescueWWW::Mechanize::ResponseCodeError=>eife.response_code.to_i==503handle_the_situationendendend我想测试ife.response_code.to_i==503部分发生了什么。我可以模拟do_some_stuff以抛出正确类型的异常:whatever.should_receive(:do_some_stuff).and_raise(WWW::Mechanize::ResponseCodeError)但是我

sql - 将每个 SQL 查询记录到 Rails 中的数据库

我想将某些SQL查询rails执行(即CREATE、UPDATE和DELETE)保存到日志文件中因此我需要拦截所有查询,然后可能使用一些正则表达式过滤它们并根据需要记录它们。我应该把这样的东西放在Rails代码的什么地方? 最佳答案 这里是c0r0ner链接的简化版本,以更好地展示它:connection=ActiveRecord::Base.connectionclasse;end#executeoriginalstatementoriginal_exec(sql,*name)endend